"""
  this module handles issues about a task
"""


class ITask:
    def setLevel(self, level):
        pass

    def setTitle(self, title):
        pass

    def setProperties(self, properties):
        pass

    def setContent(self, content):
        pass

class Task(ITask):
    """
    A task object includes title, attributes, content and zero or many subtasks

    title: ^\s*\*\s.\+$
    attributes: ^\s*\(\s\+\w\+=\w\+\)*$
    content: ^.*$
    """
    
    def __init__(self):
        """
        init task object
        """
        self._level=''
        self._title = ''
        self._properties = ''
        self._content = ''

    def setLevel(self, level):
        """
        task level

        level -- task's level
        """
        self._level = level

    def setTitle(self, title):
        """
        set task's title

        title -- task's title
        """
        self._title = title.strip()

    def setProperties(self, properties):
        """
        set task's properties

        properties -- task's properties
        """
        self._properties = properties

    def setContent(self, content):
        """
        set task's description

        content -- task's description
        """
        self._content = content

class CompositeTask(ITask):
    pass



if __name__ == '__main__':
    pass
